package com.buss.base.dao;

import com.buss.base.model.Branch;
import com.buss.core.dic.RecordStatus;
import com.buss.core.persistence.OrderBy;
import com.buss.core.persistence.Paginalbe;
import com.buss.core.persistence.ResultList;

/**
 * 店铺信息操作接口
 * @author Administrator
 *
 */
public interface BranchDao {

	/**
	 * 新增店铺信息
	 * @param branch
	 */
	public Branch saveBranch(Branch branch);
	
	/**
	 * 修改店铺信息
	 * @param branch
	 */
	public void editBranch(Branch branch);
	
	/**
	 * 删除指定店铺信息
	 * @param ids
	 */
	public void deleteBranch(Long[] ids);
	
	/**
	 * 获取指定的店铺信息
	 * @param id
	 * @return
	 */
	public Branch loadBranch(Long id);
	
	/**
	 * 修改店铺状态
	 * @param status
	 */
	public void updateStatus(Long[] ids,RecordStatus status);
	
	/**
	 * 获取店铺信息集合
	 * @param companyId 单位编码
	 * @param name		店铺名称
	 * @param pinyin	拼音码
	 * @param page		
	 * @param orderBy
	 * @return
	 */
	public ResultList<Branch> queryBranch(String companyId,String name,String pinyin,
		    RecordStatus status,Paginalbe page,OrderBy orderBy);
	
	/**
	 * 根据店铺ID获取店铺信息
	 * @param companyId
	 * @param branchIds
	 * @return
	 */
	public ResultList<Branch> queryBranch(String companyId,Long[] branchIds);
	/**
	 * 根据角色编码获取店铺信息列表
	 * @param roleIds
	 * @return
	 */
	public ResultList<Branch> queryBranchByRole(Long[] roleIds,RecordStatus status,Paginalbe page);
	
	/**
	 * 保存角色拥有店铺权限
	 * @param roleId
	 * @param branchIds
	 */
	public void saveBranchRole(Long roleId,Long[] branchIds);
	
	/**
	 * 取消角色拥有的店铺权限
	 * @param roleId
	 * @param branchIds
	 */
	public void saveCancelBranch(Long roleId,Long[] branchIds);
}
